package cn.iocoder.yudao.module.def.controller.admin.project.vo;

import cn.iocoder.yudao.module.def.controller.admin.projectprogress.vo.ProjectProgressSaveReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;


import javax.validation.constraints.NotEmpty;

@Schema(description = "管理后台 - 工程新增/修改 Request VO")
@Data
public class ProjectSaveReqVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13058")
    private Integer id;

    @Schema(description = "工程分类")
    private String projectCate;

    @Schema(description = "省市区")
    private String pca;

    @Schema(description = "建设区域(所在省份)")
    private String province;

    @Schema(description = "建设区域(所在城市)")
    private String city;

    @Schema(description = "建设区域")
    private String area;

    @Schema(description = "建设地点")
    private String address;

    @Schema(description = "国家下达任务名称", example = "芋艿")
    private String assignName;

    @Schema(description = "设施类型", example = "2")
    private String facilityType;

    @Schema(description = "发改部门批复名称", example = "李四")
    private String reformApprovalName;

    @Schema(description = "建设性质")
    private String constructionNature;

    @Schema(description = "所属战区")
    private String warZone;

    @Schema(description = "边界（海区）")
    private String seaBorder;

    @Schema(description = "经纬度")
    private String lngLat;

    @Schema(description = "地形类别")
    private String terrainCate;

    @Schema(description = "投资年度")
    private Integer investYear;

    @Schema(description = "投资执行金额[元]")
    private Integer investTotal;

    @Schema(description = "中央投资[元]")
    private Integer investCentral;

    @Schema(description = "地方投资[元]")
    private Integer investLocal;

    @Schema(description = "单位", example = "王五")
    private String unitName;

    @Schema(description = "下达任务规模")
    private String taskScale;

    @Schema(description = "实际建设规模")
    private String buildScale;

    @Schema(description = "建设状态", example = "1")
    private String buildStatus;

    @Schema(description = "调整情况", example = "2")
    private String adjustStatus;

    @Schema(description = "调整来源项目ID", example = "25267")
    private String adjustId;

    @Schema(description = "招投标时间")
    private String bidDate;

    @Schema(description = "开工时间")
    private String beginDate;

    @Schema(description = "初验时间")
    private String inspectDate;

    @Schema(description = "竣工验收时间")
    private String finishDate;

    @Schema(description = "审计报告出具时间")
    private String reportDate;

    @Schema(description = "设施状态", example = "2")
    private String facilityStatus;

    @Schema(description = "被替代数量")
    private Integer replaceNum;

    @Schema(description = "替代项目建设单位")
    private String replaceCompany;

    @Schema(description = "建设单位")
    private String buildCompany;

    @Schema(description = "使用单位类别")
    private String useCompanyCate;

    @Schema(description = "使用单位")
    private String useCompany;

    @Schema(description = "管理单位")
    private String manageCompany;

    @Schema(description = "承建单位")
    private String contructCompany;

    @Schema(description = "监理单位")
    private String supervisorCompany;

    @Schema(description = "维护责任单位")
    private String responsibleMaintainCompany;

    @Schema(description = "维护施工单位")
    private String constructMaintainCompany;

    @Schema(description = "建设成效")
    private String constructEffect;

    @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
    @NotEmpty(message = "备注不能为空")
    private String remark;

    @Schema(description = "其他扩展")
    private String otherExtends;

    @Schema(description = "图片")
    private List<String> imgs;

    @Schema(description = "视频")
    private List<String> videos;

    @Schema(description = "扩展类")
    private ProjectProgressSaveReqVO projectProgressSaveReqVO;

    @Schema(description = "实际设施名称")
    private String actualFacilityName;

    @Schema(description = "设备序列号")
    private String deviceNum;

    @Schema(description = "设备状态")
    private String deviceStatus;

    @Schema(description = "设备状态备注")
    private String deviceStatusRemark;



}